package com.zn.config;

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;
import java.util.Map;

/**
 * 全局异常捕获
 *
 * @ControllerAdvice
 *    是给Controller增加统一的操作或者处理，一般用于全局异常捕获，
 *
 * 与@ExceptionHandler注解联用
 *    用于捕获Controller中抛出的指定类型的异常，从而达到不同类型的异常区别处理的目的。
 *
 * @ExceptionHandler
 *     参数：表示要捕获的异常类。
 *     作用: 用户捕获指定的异常类并进行处理
 */
@ControllerAdvice
@Slf4j
@ResponseBody
public class ExceptionConfig {


    @ExceptionHandler(RuntimeException.class)
    public Map<Object,Object> exceptionHandler(){

        HashMap<Object, Object> hashMap = new HashMap<>();

        hashMap.put("code",500);
        hashMap.put("message","系统错误");
        return hashMap;
    }

}
